/*

 */

public class demo{

    public static int main(int[] arr,int index,Object obj) throws Exception //(不是runtimeError时要打这行代码，将异常交给jvm处理) {
        if(arr == null){
            throw new NullPointerException("()");       //throw关键字用法
        }
        int ele = arr[index];
        return ele;


        Objects.requireNonNull(obj,"传递的值为空（这里可以改）");                 //查看传递的对象是否为null
    }

}


public class demo2{

    public static void main(String[] args) {
        try{

        }
        catch(IOException e){                       //try中抛出了什么异常对象，catch就定义什么异常对象
            System.out.println(e);
            //e.getMessage()     返回简短描述
            //e.toString()       返回详细描述
            //e.printStackTrace()       JV打印异常对象，默认此方法
            //可以写多个catch，实现一个异常，多次捕捉   子类异常必须写在上面，不然会报错
            //多个异常，一次捕获，就是catch里面异常程序的父类异常即可
        }finally{
            //程序无论是否异常都要执行
            //尽量不要再finally中写return
        }
    }

}